home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - DOS Part 2 / DOS028.dsk / KWAK STAK.int < prev    next >
Text File  |  2012-02-16  |  6KB  |  186 lines

  1. 100 TEXT :GOSUB 12000
  2. 500 DIM NAME$(20),NAME1$(20),NAME2$(20)
  3. 510 DIM H1(18),H2(18),D(60)
  4. 520 DIM LTR$(15):LTR$="ABCDEFGHIJKLMNO"
  5. 1000 D$="<CTRL-D>":REM  "CTRL D"
  6. 1020 PRINT D$;"BLOAD KWAK.OBJ"
  7. 1040  POKE 806,1: POKE 807,0
  8. 1060 TEXT :CALL -936:CALL 3072
  9. 1080 VTAB 22:PRINT "HI! WHAT'S YOUR NAME?"
  10. 1100 INPUT "PLAYER #1: ",NAME$
  11. 1120 IF NAME$="" THEN 1100
  12. 1140 Y=20:GOSUB 9000
  13. 1160 NAME1$=NAME$
  14. 1180 CALL -198:CALL -198
  15. 1190  POKE 800,0: POKE 801,0: POKE 802,80: POKE 812,170:CALL 3780: POKE 800,23: POKE 801,1:CALL 3786
  16. 1195  POKE 800,0: POKE 801,0: POKE 802,82: POKE 812,85:CALL 3780: POKE 800,23: POKE 801,1:CALL 3786
  17. 1197 Y=40:GOSUB 8000
  18. 1200 INPUT "PLAYER #2: ",NAME$
  19. 1220 IF NAME$="" THEN 1200
  20. 1240 Y=100:GOSUB 9000
  21. 1260 NAME2$=NAME$
  22. 1280 CALL -198:CALL -198
  23. 1300 Y=120:GOSUB 8000
  24. 1400 CALL -936
  25. 1420 FOR I=1 TO 18:H1(I)=0:H2(I)=0:NEXT I
  26. 1500 VTAB 23:PRINT "ONE MOMENT PLEASE"
  27. 1520 FOR I=1 TO 60:D(I)=I MOD 2:NEXT I
  28. 1540 FOR I=1 TO 120:A= RND (60)+1:B= RND (60)+1:TEMP=D(A):D(A)=D(B):D(B)=TEMP:NEXT I
  29. 1560 N=3
  30. 1580 CALL -936:VTAB 22:PRINT NAME1$;" STARTS WITH A";
  31. 1600 IF D(1)=0 THEN PRINT "N EGG.":IF D(1)=1 THEN PRINT " DUCK."
  32. 1610 X=0:C=255
  33. 1620 Y=50:IF D(1)=0 THEN GOSUB 5000:IF D(1)=1 THEN GOSUB 6000:H1(1)=D(1)+1
  34. 1630 CALL -198
  35. 1640 PRINT "REMEMBER THAT."
  36. 1660 FOR DELAY=1 TO 1000:NEXT DELAY
  37. 1680 C=0:IF H1(1)=1 THEN GOSUB 5000:IF H1(1)=2 THEN GOSUB 6000
  38. 1690 C=255:GOSUB 7000
  39. 1700 CALL -936:VTAB 22:PRINT NAME2$;" STARTS WITH A";
  40. 1720 IF D(2)=0 THEN PRINT "N EGG.":IF D(2)=1 THEN PRINT " DUCK."
  41. 1740 X=0:C=255
  42. 1760 Y=130:IF D(2)=0 THEN GOSUB 5000:IF D(2)=1 THEN GOSUB 6000:H2(1)=D(2)+1
  43. 1780 PRINT "REMEMBER THAT."
  44. 1790 CALL -198
  45. 1800 FOR DELAY=1 TO 1000:NEXT DELAY
  46. 1820 C=0:IF H2(1)=1 THEN GOSUB 5000:IF H2(1)=2 THEN GOSUB 6000
  47. 1860 C=255:GOSUB 7000
  48. 1900 T=0:H1=1:H2=1
  49. 2000 REM  PLAY
  50. 2010 T=T+1
  51. 2020 R= RND (100)+1:IF R<31 THEN G=1
  52. 2040 IF R>30 AND R<71 THEN G=2
  53. 2060 IF R>70 AND R<91 THEN G=3
  54. 2080 IF R>90 THEN G=4
  55. 2120 IF T MOD 2=1 THEN 3000:GOTO 4000
  56. 3000 REM  PLAYER #1
  57. 3010 F=( RND (14)+1) MOD (H1+1):IF F=0 THEN F=H1
  58. 3020 CALL -936:VTAB 21
  59. 3040 PRINT NAME1$;":"
  60. 3060 PRINT "YOU GET ";G;" MORE, IF YOU CAN TELL ME"
  61. 3070 PRINT "WHAT COLUMN ";LTR$(F,F);" IS.  (D=DUCK, E=EGG)"
  62. 3100 K= PEEK (-16384):IF K<=127 THEN 3100
  63. 3120  POKE -16368,0:IF K=196 OR K=197 THEN 3160
  64. 3140 GOSUB 10000:GOTO 3100
  65. 3160 Y=50:C=0:X=18*(F-1):GOSUB 7000
  66. 3180 C=255:GOSUB 5000+1000*(H1(F)=2)
  67. 3200 K=198-K
  68. 3210 L=G:IF L>=H1 THEN L=H1-1
  69. 3220 IF H1(F)=K THEN 3400
  70. 3240 CALL -936:VTAB 23:PRINT "WRONG !   YOU LOSE ";L;" COLUMNS."
  71. 3260 FOR DELAY=1 TO 1000:NEXT DELAY
  72. 3300 REM 
  73. 3310 C=0:GOSUB 5000+1000*(H1(F)=2):C=255:GOSUB 7000
  74. 3315 IF L=0 THEN 3600
  75. 3320 FOR I=H1-L+1 TO H1
  76. 3330 C=0:X=18*(I-1):GOSUB 7000
  77. 3340 NEXT I
  78. 3350 H1=H1-L
  79. 3360 GOTO 3600
  80. 3400 W=G:IF H1+G>15 THEN W=15-H1
  81. 3420 CALL -936:VTAB 23:PRINT "CORRECT !   YOU WIN ";W;" COLUMNS !"
  82. 3440 J=H1:FOR I=J+1 TO J+W
  83. 3450 C=255:H1=H1+1:H1(H1)=D(N)+1:N=N+1
  84. 3460 X=18*(I-1):GOSUB 5000+1000*(H1(H1)=2)
  85. 3480 CALL -198
  86. 3490 NEXT I
  87. 3495 FOR DELAY=1 TO 1500:NEXT DELAY
  88. 3496 X=18*(F-1)
  89. 3497 C=0:GOSUB 5000+1000*(H1(F)=2):C=255:GOSUB 7000
  90. 3500 FOR I=J+1 TO J+W
  91. 3520 C=0
  92. 3540 X=18*(I-1):GOSUB 5000+1000*(H1(I)=2):C=255:GOSUB 7000
  93. 3580 NEXT I
  94. 3600 IF H1=15 THEN 9500
  95. 3610 GOTO 2000
  96. 4000 REM   PLAYER #2
  97. 4010 F=( RND (14)+1) MOD (H2+1):IF F=0 THEN F=H2
  98. 4020 CALL -936:VTAB 21
  99. 4040 PRINT NAME2$;":"
  100. 4060 PRINT "YOU GET ";G;" MORE, IF YOU CAN TELL ME"
  101. 4070 PRINT "WHAT COLUMN ";LTR$(F,F);" IS.  (D=DUCK, E=EGG)"
  102. 4100 K= PEEK (-16384):IF K<=127 THEN 4100
  103. 4120  POKE -16368,0:IF K=196 OR K=197 THEN 4160
  104. 4140 GOSUB 10000:GOTO 4100
  105. 4160 Y=130:C=0:X=18*(F-1):GOSUB 7000
  106. 4180 C=255:GOSUB 5000+1000*(H2(F)=2)
  107. 4200 K=198-K
  108. 4210 L=G:IF L>=H2 THEN L=H2-1
  109. 4220 IF H2(F)=K THEN 4400
  110. 4240 CALL -936:VTAB 23:PRINT "WRONG !   YOU LOSE ";L;" COLUMNS."
  111. 4260 FOR DELAY=1 TO 1000:NEXT DELAY
  112. 4300 REM 
  113. 4310 C=0:GOSUB 5000+1000*(H2(F)=2):C=255:GOSUB 7000
  114. 4315 IF L=0 THEN 4600
  115. 4320 FOR I=H2-L+1 TO H2
  116. 4330 C=0:X=18*(I-1):GOSUB 7000
  117. 4340 NEXT I
  118. 4350 H2=H2-L
  119. 4360 GOTO 4600
  120. 4400 W=G:IF H2+G>15 THEN W=15-H2
  121. 4420 CALL -936:VTAB 23:PRINT "CORRECT !   YOU WIN ";W;" COLUMNS !"
  122. 4440 J=H2:FOR I=J+1 TO J+W
  123. 4450 C=255:H2=H2+1:H2(H2)=D(N)+1:N=N+1
  124. 4460 X=18*(I-1):GOSUB 5000+1000*(H2(H2)=2)
  125. 4480 CALL -198
  126. 4490 NEXT I
  127. 4495 FOR DELAY=1 TO 1500:NEXT DELAY
  128. 4496 X=18*(F-1)
  129. 4497 C=0:GOSUB 5000+1000*(H2(F)=2):C=255:GOSUB 7000
  130. 4500 FOR I=J+1 TO J+W
  131. 4520 C=0
  132. 4540 X=18*(I-1):GOSUB 5000+1000*(H2(I)=2):C=255:GOSUB 7000
  133. 4580 NEXT I
  134. 4600 IF H2=15 THEN 9500
  135. 4610 GOTO 2000
  136. 5000 REM  DRAW EGG
  137. 5020  POKE 800,X MOD 256: POKE 801,X/256: POKE 802,Y
  138. 5040 CALL 3761
  139. 5060 LOC=6332: POKE 804,LOC MOD 256: POKE 805,LOC/256: POKE 28,C
  140. 5080 CALL 3805
  141. 5100 RETURN 
  142. 6000 REM   DRAW DUCK
  143. 6020  POKE 800,X MOD 256: POKE 801,X/256: POKE 802,Y
  144. 6040 CALL 3761
  145. 6060 LOC=6446: POKE 804,LOC MOD 256: POKE 805,LOC/256: POKE 28,C
  146. 6080 CALL 3805
  147. 6100 RETURN 
  148. 7000 REM   DRAW UNKNOWN
  149. 7020  POKE 800,X MOD 256: POKE 801,X/256: POKE 802,Y
  150. 7040 CALL 3761
  151. 7060 LOC=6560: POKE 804,LOC MOD 256: POKE 805,LOC/256: POKE 28,C
  152. 7080 CALL 3805
  153. 7100 RETURN 
  154. 8000 REM  OUTPUT HEADING LETTERS
  155. 8020 FOR I=1 TO 15
  156. 8040 LOC=4772+26*(I-1)
  157. 8060 X=4+18*(I-1)
  158. 8080  POKE 800,X MOD 256: POKE 801,X/256: POKE 802,Y
  159. 8100 CALL 3761
  160. 8120  POKE 804,LOC MOD 256: POKE 805,LOC/256: POKE 28,255
  161. 8140 CALL 3805
  162. 8160 NEXT I
  163. 8180 RETURN 
  164. 9000 REM  OUTPUT PLAYER NAME
  165. 9020 FOR I=1 TO  LEN(NAME$)
  166. 9040 IF I=1 THEN LOC=4772+( ASC(NAME$(I,I))-193)*26
  167. 9060 IF I>1 THEN LOC=4096+( ASC(NAME$(I,I))-193)*26
  168. 9080 X=20+7*(I-1)
  169. 9100  POKE 800,X MOD 256: POKE 801,X/256: POKE 802,Y
  170. 9120 CALL 3761
  171. 9140  POKE 804,LOC MOD 256: POKE 805,LOC/256: POKE 28,255
  172. 9160 CALL 3805
  173. 9180 NEXT I
  174. 9200 RETURN 
  175. 9500 CALL -936:VTAB 23:PRINT "GAME OVER"
  176. 9510 CALL -198:CALL -198:CALL -198
  177. 9520 END 
  178. 10000 FOR BUZ=1 TO 50:S= PEEK (-16336)+ PEEK (-16336)- PEEK (-16336):NEXT BUZ:RETURN 
  179. 12000 CALL -936:VTAB 5:TAB 7:PRINT "KWAK STAK -- A MEMORY GAME"
  180. 12020 PRINT :TAB 14:PRINT "BY JIM HILGER"
  181. 12040 VTAB 21:TAB 5:PRINT "WHICH CAME FIRST..."
  182. 12045 PRINT 
  183. 12050 TAB 15:PRINT "THE DUCK OR THE EGG?"
  184. 12060 FOR DELAY=1 TO 4000:NEXT DELAY
  185. 12070 RETURN 
  186.